package gui.dados.cliente;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import negocio.cliente.Cliente;

import negocio.cliente.Validar;

import dados.cliente.CadastroDeCliente;

public class TelaCadastrarCliente extends JFrame {

	private JTextField txtNome, txtTelefoneFixo, txtTelefoneCelular, txtRua,
			txtNumero, txtBairro, txtCidade;
	private JButton btCadastrar, btLimparDados;
	public static CadastroDeCliente cdc = new CadastroDeCliente();
	private Cliente cliente;

	public TelaCadastrarCliente(String titulo, int largura, int altura) {
		super(titulo);
		this.setBounds(0, 0, largura, altura);
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		this.configurarTela();
		setVisible(true);
	}

	private void configurarTela() {

		txtNome = new JTextField(2);
		txtTelefoneFixo = new JTextField(2);
		txtTelefoneCelular = new JTextField(2);
		txtRua = new JTextField(2);
		txtNumero = new JTextField(2);
		txtBairro = new JTextField(2);
		txtCidade = new JTextField(2);

		btCadastrar = new JButton("Cadastrar");
		btLimparDados = new JButton("Limpar dados");

		BorderLayout bl = new BorderLayout();
		setLayout(bl);

		JPanel painelSuperior = new JPanel();
		JPanel painelCentro = new JPanel();
		JPanel painelInferior = new JPanel();

		painelSuperior.setBackground(Color.red);
		painelCentro.setBackground(Color.white);
		painelInferior.setBackground(Color.red);

		add(painelSuperior, BorderLayout.NORTH);
		add(painelCentro, BorderLayout.CENTER);
		add(painelInferior, BorderLayout.SOUTH);

		painelSuperior.setLayout(new GridLayout(1, 2));
		painelSuperior.add(btCadastrar);
		painelSuperior.add(btLimparDados);

		painelCentro.setLayout(new GridLayout(7, 2));
		painelCentro.add(new JLabel("Nome: "));
		painelCentro.add(txtNome);
		painelCentro.add(new JLabel("Telefone fixo: "));
		painelCentro.add(txtTelefoneFixo);
		painelCentro.add(new JLabel("Telefone celular: "));
		painelCentro.add(txtTelefoneCelular);
		painelCentro.add(new JLabel("Rua: "));
		painelCentro.add(txtRua);
		painelCentro.add(new JLabel("N�mero: "));
		painelCentro.add(txtNumero);
		painelCentro.add(new JLabel("Bairro: "));
		painelCentro.add(txtBairro);
		painelCentro.add(new JLabel("Cidade: "));
		painelCentro.add(txtCidade);

		painelInferior.add(new JLabel("CopyRigth UFRPE BSI 2� per�odo 2013"));

		btCadastrar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				Validar validar = new Validar();
				String nome = txtNome.getText();
				String telefoneFixo = txtTelefoneFixo.getText();
				String telefoneCelular = txtTelefoneCelular.getText();
				String rua = txtRua.getText();
				String numero = txtNumero.getText();
				String bairro = txtBairro.getText();
				String cidade = txtCidade.getText();				
				cliente = new Cliente(nome, telefoneFixo, telefoneCelular, numero, rua,
						bairro, cidade);
				try {
					if(!(TelaCadastrarCliente.cdc.existeCliente(telefoneFixo))){
						
						if(validar.validarString(cidade) && validar.validarString(bairro) 
								&& validar.validarString(numero) && validar.validarString(rua)
								&& validar.validarString(telefoneFixo)
								&& validar.validarString(nome)){
							
							if(validar.validarTelefone(telefoneFixo)){
									
								TelaCadastrarCliente.cdc.adicionarCliente(cliente);
								JOptionPane.showMessageDialog(null,"Cliente adicionado com sucesso");
							
							}else{
								JOptionPane.showMessageDialog(null,"O telefone fixo n�o existe" );
							}
							
						}else{
							JOptionPane.showMessageDialog(null, "Existe campos obrigat�rios que n�o foram preenchidos");
						}
						
					}else{
						JOptionPane.showMessageDialog(null, "O cliente j� foi cadastrado");
					}
				} catch (Exception e) {
					JOptionPane.showMessageDialog(null, "O cliente j� existe.");
				}

			}
		});

		btLimparDados.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				txtNome.setText("");
				txtTelefoneFixo.setText("");
				txtTelefoneCelular.setText("");
				txtRua.setText("");
				txtNumero.setText("");
				txtBairro.setText("");
				txtCidade.setText("");

			}
		});

	}

}
